package start.spring.basic.util.common;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 
 * ****************************************************************************
 * 通用的文件操作处理类
 *
 * @author(作者)：xuyongyun	
 * @date(创建日期)：2019年7月5日
 ******************************************************************************
 */
public class FileUtil {

	/**
	 * 读取txt文件内容
	 *	
	 * @param file
	 * @return
	 * @since           1.0
	 */
	public static String readTxtContent(File file) throws IOException {
		  
		StringBuilder result = new StringBuilder();
		BufferedReader br = null;
		try{
			//构造一个BufferedReader类来读取文件
			br = new BufferedReader(new FileReader(file));
			String s = null;
			//使用readLine方法，一次读一行
			while((s = br.readLine())!=null){
				result.append(s);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally {
			if (br != null) {
				br.close();
			}
		}
		return result.toString();
	}
	
	/**
	 * 替换txt文件内容
	 *	
	 * @param file 待写入的文件
	 * @param content
	 * @throws IOException 
	 * 
	 * @since           1.0
	 */
	public static void replaceTxtContent(File file,String content) throws IOException{
		BufferedWriter out = null;
		try {
			if(file.exists()) {
				file.delete();
			}
			file.createNewFile();
			out = new BufferedWriter(new FileWriter(file));
			out.write(content); 
			out.flush();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (out != null) {
				out.close();
			}
		}
	}

	/**
	 * 如果存在对应的非目录文件,则对文件进行覆盖.如果存在对应目录,则不作任何操作.
	 * @param path
	 */
	public static void createDir(String path){
		File file = new File(path);
		if (!file.exists()) {
			file.mkdirs();
		}
	}

	/**
	 * 删除指定文件
	 *
	 * @param file 指定文件对象
	 */
	public static void remove(File file){
		if(file.isFile()){
			file.delete();
		}
	}
}
